﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using ProyectoVuelos.Presentacion.Vista;
using ProyectoVuelos.Logica.CompraVuelos;
using ProyectoVuelos.Entidades;
using ProyectoVuelos.Presentacion.Contrato;
using System.Web.SessionState;

namespace ProyectoVuelos.Presentacion.Presentador
{
    public class PresentadorCompraVuelos
    {
        #region Atributos
        //Se instancia la logica relacionada a la compra de vuelos
        LogicaCompraVuelos logica = new LogicaCompraVuelos();
        Mensaje msn;
        private IContratoCompraVuelos _vista;

        #endregion

        #region Constructores
        public PresentadorCompraVuelos(IContratoCompraVuelos _vista)
        {
            this.msn = new Mensaje();
            this._vista = _vista;
        }
        #endregion



        #region Metodos
        public Mensaje ComprarVuelo(int identificadorCuenta, List<Usuario> pasajeros, string tipoBoleto, Vuelo vueloIda, Pago pago)
        {
            #region Datos Ficticios

            #endregion
            this.msn = this.logica.AgregarCompraVuelo(pasajeros, tipoBoleto, identificadorCuenta, vueloIda, pago);
            return msn;
        }


        public void Redireccionar(string _ruta)
        {
            this._vista.Redireccionar(_ruta);
        }

        public Usuario ClaseUsuario(string primerNombre, string segundoNombre, string primerApellido, string segundoApellido, string pasaporte, DateTime fechaNacimiento, Cuenta cuenta)
        {
            Usuario persona = this.logica.ClaseUsuario(primerNombre, segundoNombre, primerApellido, segundoApellido, pasaporte, fechaNacimiento);
            return persona;
        }

        public BoletoAereo ClaseBoletos(Usuario pasajero, Compra c, string tipoBoleto, string tipoTarifa)
        {

            BoletoAereo boleto = this.logica.ClaseBoleto(pasajero, c, tipoBoleto, tipoTarifa);
            return boleto;
        }

        public void LlenarTablaIda()
        {
            Vuelo vuelo =    (Vuelo)this._vista.GetSesion("VueloIda");
            Tarifa tarifa =  (Tarifa)this._vista.GetSesion("TarifaIda");
            string origen =  (string)this._vista.GetSesion("origen");
            string destino = (string)this._vista.GetSesion("destino");
            this._vista.TextoOrigenIda.Text =  origen;
            this._vista.TextoDestinoIda.Text = destino;
            this._vista.TextoFechaLlegadaIda.Text = Convert.ToString(vuelo.FechaLlegada);
            this._vista.TextoFechaSalidaIda.Text =  Convert.ToString(vuelo.FechaSalida);
            this._vista.TextoHoraLlegadaIda.Text = vuelo.HoraLlegada;
            this._vista.TextoHoraSalidaIda.Text = vuelo.HoraSalida;
            this._vista.TextoAerolineaSalidaIda.Text = vuelo.Aerolinea;
            this._vista.TextoPrecioTotal.Text = Convert.ToString(tarifa.Precio);

        }



        #endregion
    }
}